Many companies and other organizations operate computer networks that interconnect numerous computing systems to support their operations, such as with the computing systems being co-located (e.g., as part of a local network) or instead located in multiple distinct geographical locations (e.g., connected via one or more private or public intermediate networks). For example, data centers housing significant numbers of interconnected computing systems have become commonplace, such as private data centers that are operated by and on behalf of a single organization, and public data centers that are operated by entities as businesses to provide computing resources to customers or clients. Some public data center operators provide network access, power, and secure installation facilities for hardware owned by various clients, while other public data center operators provide “full service” facilities that also include hardware resources made available for use by their clients. However, as the scale and scope of typical data centers has increased, the tasks of provisioning, administering, and managing the physical computing resources have become increasingly complicated.
Many large companies are attempting to move data center resources to cloud computing environments. These companies may use large amounts of desktop computing software that must be procured, kept up-to-date, and distributed across many desktop computers in multiple locations. For a large enterprise, it can be difficult to keep all of the applications they may wish to use up to date using the traditional approach of physically installing applications on each machine. For example, deploying and managing applications at scale is difficult, complex and requires expensive on premise infrastructure. In addition, updates and patches are complex to deploy without affecting user productivity, and legacy applications typically only run on older operation system versions. It can also be difficult for a large enterprise to deploy applications on-demand and their own line-of-business applications. In many cases, there is a lack of transparency into cost controls, spending and usage related to desktop applications and software services. Therefore, large enterprises can miss opportunities for license synergies across the organization.
For example, within a large enterprise, individual business units often procure their own software and services. When this is not done in a controlled fashion, the resulting sprawl of unapproved products creates compliance risks that administrators have to address. Different organizations have taken a variety of approaches to increase standardization and enforce compliance. Some attempted to address these issues by setting policies centrally, educating users, and relying on them to comply. Often, users had to bear most of the burden for compliance, impacting productivity and increasing risk. Other organizations attempted to address these issues by centralizing control, so that only a small and trusted set of users could have access to the most powerful tools, sacrificing agility and self-service.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean including, but not limited to.